package com.exam.project.business.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.exam.framework.aspectj.lang.annotation.Excel;
import com.exam.framework.web.domain.BaseEntity;

/**
 * 学生考试表对象 user_exam
 * 
 * @author qiuwenbing
 * @date 2025-04-03
 */
public class UserExam extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 学生id */
    @Excel(name = "学生id")
    private Long userId;

    /** 关联的考试id */
    @Excel(name = "关联的考试id")
    private Long examId;

    /** 学生开始考试的时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "学生开始考试的时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 学生结束考试的时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "学生结束考试的时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 学生考试成绩 */
    @Excel(name = "学生考试成绩")
    private Long score;

    /** 学生是否提交试卷，true表示已提交，false表示未提交 */
    @Excel(name = "学生是否提交试卷，true表示已提交，false表示未提交")
    private Integer isSubmitted;

    private Integer isConfirmed;

    private String userName;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Integer getIsConfirmed() {
        return isConfirmed;
    }

    public void setIsConfirmed(Integer isConfirmed) {
        this.isConfirmed = isConfirmed;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setExamId(Long examId) 
    {
        this.examId = examId;
    }

    public Long getExamId() 
    {
        return examId;
    }
    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }
    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }
    public void setScore(Long score) 
    {
        this.score = score;
    }

    public Long getScore() 
    {
        return score;
    }
    public void setIsSubmitted(Integer isSubmitted) 
    {
        this.isSubmitted = isSubmitted;
    }

    public Integer getIsSubmitted() 
    {
        return isSubmitted;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("examId", getExamId())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("score", getScore())
            .append("isSubmitted", getIsSubmitted())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
